package com.merry.BeanDefinition.impl;

import org.springframework.beans.factory.annotation.AnnotatedGenericBeanDefinition;
import org.springframework.beans.factory.config.BeanDefinition;
import org.springframework.core.type.AnnotationMetadata;
import org.springframework.core.type.MethodMetadata;
import org.springframework.lang.Nullable;

/**
 * 继承了 {@link BeanDefinition} 接口，暴露了 {@link org.springframework.core.type.AnnotationMetadata}
 *
 * @author Juergen Hoeller
 * @since 2.5
 * @see AnnotatedGenericBeanDefinition：它的一个经典实现类。
 * @see org.springframework.core.type.AnnotationMetadata
 */
public interface AnnotatedBeanDefinition extends BeanDefinition {

    /**
     * 包含了一个 注解的元数据对象 {AnnotationMetadata}，从不为null。
     */
    AnnotationMetadata getMetadata();

    /**
     * 获取这个 {BeanDefinition} 对象的元数据信息。
     */
    @Nullable
    MethodMetadata getFactoryMethodMetadata();

}

